package com.fy.oa.zc.service;

import java.util.Set;

import com.fy.oa.zc.manager.FyOA_FormEventManager;
import com.seeyon.apps.collaboration.event.AbstractCollaborationEvent;

/**
 * 校验触发事件的表单流程是否需要进行处理
 * 
 * @author 郑志诚
 *
 */
public interface FyOAFormHandlerAccess {
	/**
	 * 校验触发事件的流程的模板编号需要监听
	 * 
	 * @param code
	 *            {@link String} 流程的模板编号
	 * @return boolean 返回true表示该流程需要监听
	 */
	public boolean checkTemplateCode(String code);

	/**
	 * 校验触发事件是否需要进行处理
	 * 
	 * @param event
	 *            {@link AbstractCollaborationEvent} 流程事件
	 * @return boolean 返回true表示该事件需要处理
	 */
	public boolean checkEvent(String eventName);

	/**
	 * 设置需要监听的流程模板编号
	 * 
	 * @param templateCodes
	 *            {@link Set} 流程模板编号集合
	 */
	public void setTemplateCodes(Set<String> templateCodes);

	/**
	 * 设置需要监听的流程事件
	 * 
	 * @param eventNames
	 *            {@link Set} 事件名称集合
	 */
	public void setEventNames(Set<String> eventNames);

	public FyOA_FormEventManager getFyOA_FormEventManager();

	public void setFyOA_FormEventManager(FyOA_FormEventManager fyOA_FormEventManager);
}
